{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Shapelets and the Shapelet Transform with sktime\n",
    "\n",
    "Introduced in [1], a shapelet is a time series subsequences that is identified as being representative of class membership. Shapelets are a powerful approach for measuring _phase-independent_ similarity between time series; they can occur at any point within a series and offer _interpretable_ results for how matches occur. The original research extracted shapelets to build a decision tree classifier. \n",
    "\n",
    "The example below illustrates how leaf shape can be represented as a one-dimensional time series (blue line) to distinguish between two species.[2]\n",
    "\n",
    "<img src = \"img/leaf_types.png\">\n",
    "<img src = \"img/verdena_shapelet.png\">\n",
    "\n",
    "The highlighted red subsection of the time series (i.e., \"subsequences\") above is the shapelet that distinguishes *Verbena urticifolia* from *Urtica dioica*.\n",
    "\n",
    "## The Shapelet Transform\n",
    "\n",
    "Much research emphasis has been placed on shapelet-based approaches for time series classification (TSC) since the original research was proposed. The current state-of-the-art for shapelets is the **shapelet transform** (ST) [3, 4]. The transform improves upon the original use of shapelets by separating shapelet extraction from the classification algorithm, allowing interpretable phase-independent classification of time series with any standard classification algorithm (such as random/rotation forest, neural networks, nearest neighbour classifications, ensembles of all, etc.). To facilitate this, rather than recursively assessing data for the best shapelet, the transform evaluates candidate shapelets in a single procedure to rank them based on information gain. Then, given a set of _k_ shapelets, a time series can be transformed into _k_ features by calculating the distance from the series to each shapelet. By transforming a dataset in this manner any vector-based classification algorithm can be applied to a shapelet-transformed time series problem while the interpretability of shapelets is maintained through the ranked list of the _best_ shapelets during transformation. \n",
    "\n",
    "Shapelets can provide interpretable results, as seen in the figure below:\n",
    "\n",
    "<img src = \"img/leaves_shapelets.png\">\n",
    "\n",
    "The shapelet has \"discovered\" where the two plant species distinctly differ. *Urtica dioica* has a stem that connects to the leaf at almost 90 degrees, whereas the stem of *Verbena urticifolia* connects to the leaf at a wider angle. \n",
    "\n",
    "Having found shapelet, its distance to the nearest matching subsequence in all objects in the database can be recorded. Finally, a simple decision tree classifier can be built to determine whether an object $Q$ has a subsequence within a certain distance from shapelet $I$.\n",
    "\n",
    "<img src = \"img/shapelet_classifier.png\">\n",
    "\n",
    "#### References\n",
    "[1] Ye, Lexiang, and Eamonn Keogh. \"Time series shapelets: a novel technique that allows accurate, interpretable and fast classification.\" Data mining and knowledge discovery 22, no. 1-2 (2011): 149-182.\n",
    "\n",
    "[2] Ye, Lexiang, and Eamonn Keogh. \"Time series shapelets: a new primitive for data mining.\" In Proceedings of the 15th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 947-956. 2009.\n",
    "\n",
    "[3] Lines, Jason, Luke M. Davis, Jon Hills, and Anthony Bagnall. \"A shapelet transform for time series classification.\" In Proceedings of the 18th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 289-297. ACM, 2012.\n",
    "\n",
    "[4] Hills, Jon, Jason Lines, Edgaras Baranauskas, James Mapp, and Anthony Bagnall. \"Classification of time series by shapelet transformation.\" Data Mining and Knowledge Discovery 28, no. 4 (2014): 851-881.\n",
    "\n",
    "[5] Bostrom, Aaron, and Anthony Bagnall. \"Binary shapelet transform for multiclass time series classification.\" In Transactions on Large-Scale Data-and Knowledge-Centered Systems XXXII, pp. 24-46. Springer, Berlin, Heidelberg, 2017.\n",
    "\n",
    "## Example: The Shapelet Transform in sktime\n",
    "\n",
    "The following workbook demonstrates a full workflow of using the shapelet transform in `sktime` with a `scikit-learn` classifier with the [OSU Leaf](http://www.timeseriesclassification.com/description.php?Dataset=OSULeaf) dataset, which consists of one dimensional outlines of six leaf classes: *Acer Circinatum*, *Acer Glabrum*, *Acer Macrophyllum*, *Acer Negundo*, *Quercus Garryana* and *Quercus Kelloggii*."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2020-12-19T14:33:01.689267Z",
     "iopub.status.busy": "2020-12-19T14:33:01.688493Z",
     "iopub.status.idle": "2020-12-19T14:33:02.475052Z",
     "shell.execute_reply": "2020-12-19T14:33:02.475570Z"
    }
   },
   "outputs": [],
   "source": [
    "from sktime.datasets import load_osuleaf\n",
    "from sktime.transformations.panel.shapelets import ContractedShapeletTransform\n",
    "\n",
    "train_x, train_y = load_osuleaf(split=\"train\", return_X_y=True)\n",
    "test_x, test_y = load_osuleaf(split=\"test\", return_X_y=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2020-12-19T14:33:02.479872Z",
     "iopub.status.busy": "2020-12-19T14:33:02.479312Z",
     "iopub.status.idle": "2020-12-19T14:34:04.232160Z",
     "shell.execute_reply": "2020-12-19T14:34:04.232679Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "visiting series: 119 (#1)\n",
      "1.4688408374786377\n",
      "Candidate finished. 00:58 remaining\n",
      "5.909873962402344\n",
      "Candidate finished. 00:52 remaining\n",
      "Candidate finished. 00:48 remaining\n",
      "Candidate finished. 00:46 remaining\n",
      "Candidate finished. 00:42 remaining\n",
      "Candidate rejected. 00:-20 remaining\n",
      "Candidate finished. 00:36 remaining\n",
      "Candidate finished. 00:33 remaining\n",
      "Candidate rejected. 00:-28 remaining\n",
      "Candidate rejected. 00:-31 remaining\n",
      "visiting series: 160 (#2)\n",
      "Candidate finished. 00:25 remaining\n",
      "Candidate rejected. 00:-36 remaining\n",
      "Candidate rejected. 00:-39 remaining\n",
      "Candidate rejected. 00:-41 remaining\n",
      "Candidate finished. 00:14 remaining\n",
      "Candidate finished. 00:12 remaining\n",
      "Candidate finished. 00:09 remaining\n",
      "Candidate finished. 00:07 remaining\n",
      "Candidate rejected. 00:-54 remaining\n",
      "Candidate finished. 00:02 remaining\n",
      "visiting series: 12 (#3)\n",
      "No more time available! It's been 01:00\n",
      "Stopping search\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "ContractedShapeletTransform(num_candidates_to_sample_per_case=10,\n",
       "                            time_contract_in_mins=1, verbose=2)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# How long (in minutes) to extract shapelets for.\n",
    "# This is a simple lower-bound initially;\n",
    "# once time is up, no further shapelets will be assessed\n",
    "time_contract_in_mins = 1\n",
    "\n",
    "# The initial number of shapelet candidates to assess per training series.\n",
    "# If all series are visited and time remains on the contract then another\n",
    "# pass of the data will occur\n",
    "initial_num_shapelets_per_case = 10\n",
    "\n",
    "# Whether or not to print on-going information about shapelet extraction.\n",
    "# Useful for demo/debugging\n",
    "verbose = 2\n",
    "\n",
    "st = ContractedShapeletTransform(\n",
    "    time_contract_in_mins=time_contract_in_mins,\n",
    "    num_candidates_to_sample_per_case=initial_num_shapelets_per_case,\n",
    "    verbose=verbose,\n",
    ")\n",
    "st.fit(train_x, train_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2020-12-19T14:34:04.238538Z",
     "iopub.status.busy": "2020-12-19T14:34:04.238006Z",
     "iopub.status.idle": "2020-12-19T14:34:04.898056Z",
     "shell.execute_reply": "2020-12-19T14:34:04.898848Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Series ID: 119, start_pos: 73, length: 167, info_gain: 0.3254739618843089, \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Series ID: 12, start_pos: 342, length: 60, info_gain: 0.08997643577425246, \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA7bElEQVR4nO2deZAkV33nv6/u7uqq6qP6mukeza05pNEgjcYgicUCC0YSGGkDkB14RQQ2RDi8DmM2wDhEEN4Ir+1ljYNwAN6QjbkWEGsOizDCWkkIkCyQ1HNImqvn0vRMH9PV3XXf19s/ul52VnVV1/WyMrP694mYmKqsqszXryq/+cvf+x2Mcw6CIAjCvFj0HgBBEATRHiTkBEEQJoeEnCAIwuSQkBMEQZgcEnKCIAiTY9PjoH6/n2/fvl2PQxMEQZiW48ePL3POhyu36yLk27dvx9TUlB6HJgiCMC2MsZlq28m1QhAEYXJIyAmCIEwOCTlBEITJISEnCIIwOW0LOWNskjH2PGPsHGPsDGPsT2QMjCAIgmgMGVEreQD/jXN+gjHmAXCcMfYM5/yshH0TBEEQdWjbIuecL3DOT5QexwCcA7C13f0SBEEQjSHVR84Y2w7gLQBervLaxxljU4yxqaWlJZmHJQiCMDzxeBzPPfccVlZWpO9bmpAzxvoA/ADAJzjn0crXOeePc86PcM6PDA+vS0xqmEKh0MYoCYIg9CEQCODFF19ENLpOHttGipAzxuxYFfFvc85/KGOf1Xj66afx5S9/WavdEwRBaEYwGAQADA4OSt+3jKgVBuCrAM5xzv+u/SHVpq+vD6FQCMlkUsvDEARBSCcYDMJqtcLr9UrftwyL/G4A/wXAOxljp0r/HpCw33Vs2bIFADA/P6/F7gmCIDQjFAphYGAAq7avXNoOP+ScvwhA/siqMD4+DmBVyHfv3t2JQxIEQUghFApp4lYBTJbZ6XK5MDQ0RBY5QRCmgnOOUCiE/v5+TfZvKiEHVt0rJOQEQZiJTCaDbDYLn8+nyf5NKeSxWAyxWEzvoRAEIQPOV/91MUKvPB6PJvs3pZADtOBJmJ9r167hC1/4Av7hH/5Bk9hiU3DpEgp79qBw+DBw7pzeo9EM8f1qEbECmFDIx8bGwBgjISdMz9TUFOLxOAKBAM6cOaP3cPThS1+C9fJlWF9/HfyOO4B8Xu8RaQIJeQUOhwPDw8Mk5ITpuXHjBvbs2QOr1Yp4PK73cHSBnz6tPGapFHD8uI6j0Q5yrVRBLHjyLverEd1LLpfD8vIyxsbG4PF4Nu2aD792rXzD+fP6DERjotEoenp6YLNp0ybZlEI+NjaGZDK5aa0YwvwEAgFwzjE2Ngav17s5hbxQAJup6CXcpUIej8c1s8YBkwq5CKoPhUI6j4QgWkP8dv1+/+a1yOfnwbLZsk28S4U8mUyit7dXs/2bWshFERqCMBuRSAQA4PP50NfXtzmF/PLldZv42e7sR5NIJOB2uzXbvymFvL+/H4wxssgJ0xKJROByueB0OuH1epHNZpHJZPQeVme5dGn9ths3Oj+ODkAWeRWsVit8Ph9mZmZowZMwJZFIRMnyE77TTWeVVxFySzQKpNM6DEY7CoUC0uk0CXk1hoeHMTMzg1deeUXvoXQVuVwOFy9epAukxpCQA7h4sfr2LusgJspuk2ulCg899BBsNhuuXr2q91C6Bs45vvSlL+E73/kOZiqjCQhpcM4RDofXCflmy+7k1VwrABAIdHYgGiOEnCzyKvT29mL//v2Ym5vTeyhdw/LysiImi4uLOo+me0kkEshkMhgaGgKwSS1yzstcK/z229de67LfXiKRAEAWeU2ogJZc1Hc31CBbO8Tcit61DocDTqdzc/2OFxbASpZqwesF279/7bUutci1FHJt0ow6xNjYGIDV5Aotg+03CzMzM/B6vejv7ych15BASajUTcg3XSz5yAgu/eu/Yuq738X9d98Nn9pF2qUWOblWaiBuTVdWVnQeSXcgUsb9fj8JuYYsLS3B5XKhr69P2bbphNxmw6Lfj+n9++H82MeA0dG117pUyHt6ejQ7hqmFvK+vD3a7nYRcApxzBINBDAwMYGBgAKlUCtmKrDtCDsFgEENDQ2W9G71e76Zb7IxEInA6nXC5XOVC3oWuld7eXlgs2smtqYWcMYahoSHK8JRAIpFALpfDwMCAEk0hsg8JuUQikXUtv3w+H2KxGIrFoj6D0gF1CKZayHmXJQVpnQwEmFzIgVX3Clnk7SMuhoODgyTkGsI5RyQSWVeX2uv1gnO+qdwrZRe00noXABS7rES11un5QBcI+cDAACKRyKayZLRAlDsgi1xbkskkCoVCVYsc2Fxzro6lVws56zIfOVnkDeDz+VAsFqmkbZsIS9Dr9cLj8YAxtul8tp0gHA4DwLomvJtNyNPpNDKZzNo8+P3gpTUDSzAI5HI6jk4uiUSChLwem+0E0IpkMgmbzQaHwwGLxQKPx0NzqgHqqodqNtvveN082Gzgfv/aG7pkwbNYLCKVSpFrpR6b7QTQisrbP5/PR3OqAbWE3OFwwOVybZo5F39nmYtJ5V7plhDETqTnAyTkRAmzCjnnHE8++SQuV6ltbUQikYgi2pX4fL5N486q5mJi4+Nrb6hsAWdShMtX64RF0wu5iEMVPwyiNZLJZNntn4hrNnoVxIsXL+LUqVN48skn9R5KQ4iQO3UMucAsF08ZRCIRWK3WsqQoduuta2/4j//QYVTy0brpssD0Qg4Ao6OjmJ2d1XsYpqaaRV4oFJSsNKNy6tQpAKgqjEakLHa6Aq/Xu6mE3Ov1ln9v73iH8pD//OedH5QGCItcfcHSgq4Q8t27d+PGjRubKgZXNslksiyF2Cwuqxul5JFoNGr4iw6wsZD7fD4lmqPbqZYUhbe/XYlcwYkTQBdEopFF3gS7d+8GAKpN3iKFQgGZTGadRQ4A09PThq1Nns1mEQqFsGPHDgBrom5UcrkcksnkhkIObI665FUvaP394AcOAABYsQi8+qoOI5NLLBaDy+WCzaZtfcKuEHJ/KWyJMjxbo9rKurAgXnjhBXz96183ZMKVKOx18803A4Dhe7jWiiEXmOUuqF0KhQJisVjVebDcfffak1/9qoOj0oZ4PN6RyqxdIeQ2mw0+n8/wJ7JRERag+gfX09NT5r80olUuml/s2rULVqvV8N+/EPKBgYGqr28WIa8VggkAeOtblYf85Zc7NSTNiMViJOTNMDAwQMWzWkSdni+wWCxlUSxXrlzp+LjqMTc3B5fLhaGhIQwMDBheyKvNsxqRUbuphfzwYeUhP3euQyPSjk7UWQEkCTlj7J8ZYwHG2GkZ+2sFM5zIRqWWwKgXP422kPjSSy/hxIkTmJiYAGPMFN9/KBSC3W6veWKLjNpu95FvKOSl9S4AYFevAoVCh0alDZ2oswLIs8i/DuCYpH21xODgoNILcWlpCWfOnNFzOKYiFArB7XbD4XDUfI/woxsBzjmeeeYZAGtdoswi5P39/RuGSm6GWHJhFFR1OXg8KI6MAABYLgdcv97JoUkll8shm82axyLnnP8SgK5+jcHBQQCrJ8vXvvY1fP/7398UYVwyCIVCyvzVwkhCLnzNPT09OHLkCIDVGOxMJmPo7zwUCtV0qwg2i5DbbDbY7faqr7M9e9aeqBo0m41OpecDHfSRM8Y+zhibYoxNadFGTJwgwWAQqVQKgDH9ukaklsCIrM7+/n5DCfnCwgIA4MMf/rByey7qexvVLcE5RzgcrivkZsmobQfhN651Z8JU7hVcvNihUclH3HmYxiJvBM7545zzI5zzI+qms7IQFmUwGITT6QQAXDLx1bxTFAqF6skZWLs4Dg0NGcpHfuPGDTDGMFK6BQeMH4OdTCaRzWarzrMar9driozadqi7AKgWchOfw8L46Soh1xqn04ne3l7Mz88rt9fzXdZpRAuEm6Kaa+Whhx7Cww8/jImJCaTTaRR0WngqFot4/vnnFZFeWlrC4OBg2a250S3yehErAqNfkGSQSCQ2TllXuVZ4F1jkXeVa6QSDg4OKFT48PIxAIIB8Pq/zqFYRLb6MllizkcD09vbi0KFDikUhXFadZmZmBr/85S/x1FNPAQCWl5dReVcnFs6MKoCNCrm4IHWzn7xuowWVkBenpzswIm0wnUXOGPsugF8BuJkxNssY+30Z+22WwcFB5EqdRQ4ePIhisQgt/PGtcOrUKXzxi1/EE088ofdQymhEYMRJp5effG5uDsDqWAuFgtKFXo3VaoXb7Ta9kHe7Rc45r+9aUQm5xcQhiNFoFDabTXH1aomsqJXf5ZyPc87tnPMJzvlXZey3WdQnyYFSzQaxMKY310r1lWdmZgy1kBUKhWCz2Ta81RVCrpff9nopBC0YDGJ5eRnFYnGdRQ6sLRQajWKxiNdffx1jY2M1IzUEvb29sFqtXWuRp9NpFIvFjYVcHYKYzQIGzCpuBBFE0InKnF3nWhH4/X44nU7DCLlIJ89ms4aqnR6NRmvWxxaIk04Pi5xzjuvXr8NqtSKfz+NiyWfqV7cFK2HUxgzXrl3DysoK7rrrrrrvZYwZ9oIkgw2TgVSwUv0cAKaNXAkGg3XDemXRVUKutsgZYxgbGzNERbxCoYBAIIDt27cDWI26yOVyhrDMRV3ojdDTtbKysoJUKoVDhw4BwIZCbtSsSHERF1Ua62HUC5IMGnUxlQm5Cf3knPOG8jNk0VVCLiZN+KSEkOu9wCh8u7fccgsYY1hYWMA3v/lN/O3f/q1uC4iCaDRaV8hFqr4erhXhkrrtttuU5x6Pp6rf0ev1Ip1OI5vNdnSM9VhaWoLL5Wp40aubLfJGhRx79649vnBBwxFpQywWQz6fr/93SqKrhLy3txd33XUXHn30UQDA+Pg48vk8lpeXdR2XOCmHhoawdetWXLp0CbOzs0gmk3jjjTd0G1exWEQsFqsr5FarFS6XSxeLfGFhAU6nE9u2bVNKCFSzxgHjhiCKKJtGfaVCyPU2QLQgFAqhp6enas/SMlRCzk1okYuS2mSRtwBjDPfddx+2bNkCYFXIAf0bDghh8Xq92LFjR5nfXk8ffjweB+e8rpADq35yvVwrfr8fjDGlOL/ZhHxpaanmmKvh8/nAOVfahHUTjZQpAACoXCvchBa5iJZTJ61pSVcJeSV+vx82m62uWF68eBFf+9rXNIs5V7d72q3KWuvt7dX1IqO+wNSjt7dXNyEXoYYHDhyA0+nE0aNHq77XSEJ+6tQpPPvsswiHw0gmk01ZZkb6O2SzvLzc2Fxs3ao8ZIuLgAHWk5phaWkJTqdT816dAm37D+mMxWLB2NiYEodci+985zsAVleZtbiCinZPdrsdk5OTyvaDBw/i+PHjyOfzmreCqoao314vbRxYFfJOVxfM5XKIRqPKif/AAw/ggQceqOmiMIoABoNBPPnkkwDWFogbuVgK1ElBExMT8geoE6lUCpFIBHfeeWf9N/f1oehywZJOg2UyQCwGNDGHerO0tNSUO61dutoiB1YjBYQ/uhrq21etWsWpu4QwxvC+970PBw8exE033aRr0lIgEIDFYlmXXFMNPSxyceEQ42OMbXhi2Gw29Pb26i7kJ06cgMWyemqJKJt64XZqhOuh21oXiugdUXp4QxgDVxtVpc+aheXl5abcae3S9UK+b98+cM5xoYafTX2yaHXiVEaG3H777fjABz6g/KD18pMHAgH4/X5Yrda67+3r60MikejoApwQwYZO/BJGiPgQfuDdu3crhkIzFrnT6cTg4KDuazuyEX/P6OhoQ++3qL93Ewl5sVhEIpFo6jtvl64X8vHxcTidzpruFXUGnVat4qLRaNUi+oODg3A4HLqdsIFAoOGTqtMLcJxzHD9+HDfddFNTlo3WQv7EE08oNV9qITrEq910zZ7URsmBkMnKygpcLlfDfmOm/m2aSMg7WWNF0PVCzhiD3++vaW2Lk358fFyTMMV8Po94PF711lokLVW7yMTjcU2rDebzeUQikYbcKkDnizklEgmEQiHs27evqc9pKeScc1y5cgUnT57csIFFOByGz+crSwBq5K5HzejoKEKhENLpdMvjNRoii7hh1EJukAztRiAh1wi/319TpCORCFwuFyYmJrC4uCg921JErNT6Ae/atQvz8/PK+65evYovf/nL+MIXvoCnn35a6liqjatRS7HTC4mBQABA8+FbXq8XqVRKKZ4mk2g0ilwuh3w+j/Pnz1d9Tz6fRyKRgM/nw+7du3HkyBHcfvvtTR9LhM4umsgSrYe4U2kYtZD/8R8DdYIWjEIny9cKNo2Qx2KxqlaUsBLGx8eRzWalu1dEXZVaP+D9+/cDgCIMr776qnLROX78uNSxqFGHRDZCp4W81ThcLccpvheLxYLXX3+96nvEHYuIBHrwwQfxvve9r+ljiXWBbnKvNC3kqhBEACh+5COSR6QNZJFrhBCDkydPrntN1BoRFpDshcd6RYKGh4fhdrurHrdYLGoWKdKskIvwyU65VgKBAHp6epo+GToh5IcPH8aVK1eqlleod+FulL6+Prjd7q4R8kwmg3Q63dy8PPQQuCp5yPLcc6thiAaHLHKN2L17N3bt2oXnn39+XdSFSFEfHh6G3W7Hm2++KfXYjVR7U7t+QqEQdu3ahT/4gz8AgJq38O3SrJAzxuDz+ZTPaU2rcbhaC7nL5VKSuqpVsRQuoXbbGTLGMDo62jWuFfF9NCXk4+NgKysoqi1zE3T96mTTZcGmEHKLxYKDBw8im82WJbXk83kkk0l4PB5YrVbs3bsX58+flxpiF4lE4Ha7N0z48fv9WFpaAudcKX25ZcsWDA0N1byFb5dYLAar1aoUxGoEr9fbEYucc64IebNoLeR+v185RrWLWiAQgNvtlnJbPTAwYKiSx+0g/o6mQ/IYAytVDQVgCiFPJBLo6elRcgk6waYQcqC6z1GE0gmr9ODBg0gmk1Kt8kZW6oeHh5FOp7G0tIRMJoPBwUEwxnDw4EFcu3ZNkwqJIkmpGYtXi4gQzjlefvllfOUrX8Hp06cBrH4v6XS6pSxbu92Onp4eqeN89dVX8bOf/UwR8o3aygUCAWnZwT6fT7OF204jhLyVaoDMZBZ53Q5IGrBphFzcpqtvVSsjN/bs2QOHw6EIigxEKNpGiDjpy5cvA1i7/dy5cyc455jRoEOKOtu0UbxeL+LxuNQ7ltOnT+Pf//3fsbS0pMx7u+4J2Recp556Ci+88ALi8Tj8fj/6+vrAGFtnkYs7CZlCDnRH/85wOAyr1dpa7RG1kJsgcqWVc6tdNo2Q22w2+P1+RSSANYtKTLrNZsO+ffswPT0tJQxRNFxuxCIHVkMP1ePZunUrbDabsl0mrQo551yqn3xubg52ux2HDh3C7OysIoZA65XjZAp5ZSG1oaEhWCwW9PX1rTtGIpFALpeTVrrUKLVjZBAOh9Hf399a7ZFSNVMAprDIG6nxL5tNI+TA6kmoTgyqtuA3OTmpFPdpl1QqhXw+X1fIPR4PHA6H4tIRVovNZsP4+LgmkQutCjkgV1iEu2JiYgKJRALhcBiBQAC9vb0t3576fD5pvmX1hb+npwc7d+4EsPqdVV7QxPpLI0XIGsHsFjnnHC+99BJisZgi5C1hIotcZD+TRa4hQ0NDCAaDimug2oKfCEOcl3Dlb7g/YSn7VPhC1befw8PDCAQCUhOVMpkMstls0z82LYRFCLmoIb+4uNjyQqegv78f6XRaSlakCAt99NFH8ad/+qdKc4tqQt6OH7ga4vsxq5Bfv34dzzzzDJ566qmGXIw1KZ2TAMANbpGLekQk5BoyNDSEYrGonHDVFvxE7ZF/+Zd/ads33aiQA2vuFZfLVRbhMjw8jFQqJbXNWuUib6PItsiz2SwikQj8fr9SKmBlZUWKkANyBPDGjRtwOBzYvn077Ha7sr1af1DZFrnNZqvqwjELwiUYiUSQTCZbv8CpMjyLBg/HbDZjWhabSsjFoqKI2a7mXrDZbEqj3xMnTrR1PCEkjXypou50Zfap8BPLLHVbuTbQKE6nEw6HQ5qwqNPwRU/LK1euIJPJtLVgKIS0XfdKLpfDwsICxsfH1/l2RX9QdURJOByG2+0uE/x2MUI1x1YRrkJxV9PyBU71W2A6lXxulFbPrXbZVEIuLAK1RV5NZB9++GEcPnwYFy5cKCtc1WwRq2g0CqvV2pCvd9euXQCwzoUiLFO1r7Zdmk0GEjDGpAqLKBa2teQDHRoawpUrVwCgrYYKld9zq3zzm9/E3Nxc1bsDMXdiLrPZLKanp5W/RRY+n8+UrhXO+bps5ZaFfGAAvHSXaolGAQMXEiOLvAOIxJxwOAzOOaLRaM1wqH379iGdTitWxdLSEj7/+c/jueeea/h4onxtIyv1Qnz2qruHY9Vf7nK5pFrkrQo5INdCnJubg8fjUcahrsTYaHndavT09MBms7UlgKlUCrOzswDWLrJqKpOCTp8+jWQyibvvvrvlY1ZDJGHJLuamNaK2kaglBLQh5BYLuLqUsYGt8mg0CsYYxZFrCWMM/f39iEQiyGazyOVyNa+cu3btgsPhwLlz5wAAL7zwArLZLF588cWGLb1my3Y+9thjeOSRR9aNeXh4WLqQOxwOOJ3Opj8rM7tzbm6uzPI+cuQIgNWuTu1kxTHGlEYYrSJE/MMf/nDVUrqVSUGzs7NwuVxlrfxk4PP5kMvlTFfOVtxB3nHHHcq2dsTNLLXJY7EY+vr6OprVCWwyIQfWQtPq+bJsNht27typWOSXL19WskOvX7/e0LGajSe12WxVfwBCyGVZZe2ER/l8Pim10lOpFILBoBKtAgBbtmzBJz7xCXzgAx9oa9/A6p1MO00wZmdnwRjDtm3bqr5e6VpZWFjAli1bpPdoNGssuRDy8fFx5W9oZ27KhFyim1E2eiQDAZtQyPv7+xEOhxtyL2zZsgWhUAjRaBTJZBIHDhyA3W5vSMiF60aGr2xkZERq5Eo7PzbxuXbHUukfF/h8PinFhtoV8kAggKGhISXcsBKn0wm73Y5YLIZ8Po9AIFB2UZKFWWPJg8Egenp60Nvbiz/6oz/Cpz71qfZ2aBKLXI9kIGCTCnkymVQSgzYSNBFTLtwrg4ODmJycxNmzZ+u6V0Q8qYwvVWQKyqqVXqv1XCMIkZUl5FqIH7B6G9+OkNdrnssYUxpSi9yEdvz6teh0ZyZZqDOaHQ5H+xdnkzRiJou8QwhRrEyHr4YQ8jNnzgBYXZA8duwYMpkMXnrppQ2PI26FjSbkIsW+pZoXWPNztlsnfX5+HsPDwy356Ruhr68PyWSy4bow6lDCQqGAlZWVur1C3W43ksmkEj8uKxFIjfC3ms210lYmZzXUQm7QxU6xlkFC3gHEyfnmm28qcdG1cLvdGBkZUVwpAwMDGB4exvbt2+tWSGwmGageokaFDCFPp9MoFAotX2CEZdWOkHPOMTc3Jz1UT424UDV65/CNb3wDf/VXf4VwOIxgMAjOed2kJGGRaynkFoulavKRkWm0xlBTqIXcoD5ycQfYqpHUDptOyEWJ2FQq1ZCY3XLLLQBWMy5FKv/OnTuxvLy84ckl0yK3Wq3o7++XIuTthB4CclwrkUgEiURCM7cKsHbn0Ih7JZlMKvVszp4923D1RbfbrTSJdjgcTdV2bwazxZKL0rtaCblRszv1aPEmqN3toEux2WwYGBhAMBhsSMyOHDmCVCqlZHsCUELM5ufnawq1SAaS1SWksuBXq7Qr5D09PWCMtWWRi1LC46oaGrJRR5XUO44INQRWSwQkEglYLJa62aU9PT2KRT4wMCA9YkXg9XrLxmh0xPqRVq4VbtD2d3q0eBNIscgZY8cYY9OMsUuMsc/I2KeWCEtwI7eKoKenB+9+97uV0ENgLW1+o2xLsXot6+QW7eDarQXerpCLRb52LHLZxaWq0UzY3vXr12GxWDA6OopgMIgbN25gdHQUVqt1w8+53W7kcjksLi5q+rf4fD5Eo1HTJAXJdCsqmMBHrqdF3raQM8asAL4M4H4ABwD8LmPsQLv71ZK3vvWtAFD3RK2Fw+FAf39/Q0Iui5GREeTz+bbTzoWwtePH6+3tbatrUSgUgt1u19RyEc0fGhHy2dlZjI2NYWxsDCsrK1hYWCi7cNdCjD8ajUprJlENr9eLYrEotXCalgghl2qRq9xcluVlwIAXNbNb5EcBXOKcX+GcZwE8AeD9EvarGVu3bsUjjzyC97znPS3vY2RkBDdu3KhpJTWb1VkPWTVXYrEYXC5XW4WdhG+4VSKRSOtNBhpENH+o1wSjWCwqGaZDQ0OIxWJIpVIN+e/VlpcWoYcCs8WSh8NhpeWeNHp6wEvGB8vnAQP2Mk0mk7BarQ3d6ctGhpBvBaDOkJktbSuDMfZxxtgUY2xKZrp5q+zbt6+tMKE9e/ZgZWUFv/rVr9a9JpKBZIYhCSFvt59oPB5v+05BRGu0ivTQtBo0UhdmcXERuVwOk5OTZb70Rvz3avHWUsjNFksuIlakX6gNHkueTCbhdrs1NVBqIUPIq416nZnKOX+cc36Ec36knVrTRuGOO+7A9u3bMTU1tc4qF8lAMi1yp9OJt7zlLXjllVfaqrsiI2FBho/cKEIuShqPjo7ipptuUrY34irp7+9XUvi19pED5knTF3dcsmHqi2tFZUUjkEwmdXGrAHKEfBaAulLQBABjt/GQgOhyHwqF1glrM3XIm+Hee+8FAFy4cKHlfcgS8lQq1dLCq+jcI3UhrAaNCLm6GYTdblfG1ajr6dFHH8UnP/lJTYskyajm2Ena6ga0Eeq8AwN2CkokEqYW8lcB7GGM7WCMOQD8DoAfS9iv4dm3bx8sFgumpqbKtsuMIVfj8XgwMjKCy5cvt/T5drM6BcI33MqCpyYLYTXwer3IZrPrmnWoCYVC8Hg8inD/4R/+IT796U83fAyr1ap5Jh9jTIlcMTrZbBapVEobIVevWxiwd6de6fmABCHnnOcB/FcATwM4B+D/cs7PtLtfM9DX14dDhw7h5MmTZaKmlZADwPbt23H9+vWWrOFEIgHOuRSLHGgtu1OT0LQaNBKCKGLABU6nU7PEnnaQWT5YSzS9UNezyH/xC+D3fg945hn5x65DsVg0t5ADAOf8Kc75Xs75Ls75/5CxT7Nw5513Ip/PK4W1APnJQGpGR0eRz+dbOqlldS9pJ7uz0xY50JyQGxWzWOQiPLbjFvnJk+Dvfjfw7W+j+MgjQDYr//gbIIwkPSofApswRV824+PjGBgYwBtvvKFsk50MpEbUimllwbPdZCBBO4WzwuFww+3v2qWekMfjcUSj0brFsYyA1+tFLBZruw681nTKIueVQv75z4OVxNsSCgFnz8o//gbIOrdahYS8TRhjOHz4MK5evapEQEgvGKRCRPyIYzWDrB9bu64VTULTqlDZxacSsdZQrZWb0RC/p3px8XoTiUSUGH7pqIV8ZqbspaLKkAIAnDol//gboFevTgEJuQRuv/12WCwWnDx5EoC2xeV7enrgdrvbssjbtYbbda10wj8OQLH8awn5pUuX4Ha7G8ri1BuzdAoKh8Pwer3aRPHcdNNaE+b5eUAURCsWgcoAgNK52CnqdRzTGhJyCfT19WHHjh04f/68suih5ZV5fHwc8y2EX4XDYXg8npZLEwisVit6enpaatzQSSEHaocgFotFXL58Gbt379YlgaNZxJy1W6JBa1ZWVsqaaEvFbgffvXvt+fnzq/8vLMBS0dO0ePy4NmOoQSwW06XpsoCEXBL79u1DMBjEm2++Ka0zUC22bt2KQCCwYVhdNep1vWkG4bNthkKhgFgsZgghn5+fRyqVwm61MBiYwcFBuFwunD17tq06N1rCOZf6G6uG5YCqjJMIMLh0af0bT54EOrieoFfTZQEJuSSEILz22msAtPWViYYMzVjlnHOp1lIrzQ7E+/UWcs45XnzxRaXBthmwWq3Yv38/pqen8a1vfUvv4VQlEokgl8vVrePeFvv3rz0WC5pVhNySTK5Z7B1Ar16dAhJySfT396O/v1+JXtFSrISQzzWRFJFIJJBOp6UKebMWeSdDDwVerxfpdBpZVTjas88+i+npadx77726ZeK1wj333AMAWFhYUNrSGQmxAK9pFJD6Dko0Qa/VDL0iUU9L9IwhB0jIpbJ9+3blsZZX597eXgwODjYl5LJPMo/Hg3g83lQ4nKYxxjUQ34O46HDOcfz4cRw4cABve9vbOjYOGQwODuKDH/wggNbCT7VGND7RzEcOAKriZFwUzlILufr33WIGdCvILpLXLCTkElGXPtU6O3Dr1q2YnZ1tuNmAaGUmq0qfEMhmFjzD4bCSbt4pKqM9lpeXkclksGfPHlMsclYiImxuGLBLTjgchs1m03bBTy3kpTngaiFXX5w71FVJlIEg10qXoA5j01okJiYmlISWRlhYWEBfX580q0HdSq1RQqEQvF5v21EzzVAp5KJl2sTERMfGIJOBgQHYbDZdLPJ8Po8f//jH+NGPflT19U7UmVcLuShly69dW9tWahoDALxDQq53MhBAQi4VLWtSVyKEqNFejgsLC1J7ZDbbpR4AgsFgx9PhK5OCzp8/j97eXm1v/zWEMdZSxJAMLl68iJMnT+L1119HuiLcD+hQeWJVeWG2srIamaI+B3QQcj1chpWQkEtEdAbZs2eP5scaHR2FzWZrSMiLxSKWl5elXmhaSQrSo66J6FQTjUaxtLSECxcu4OjRo6Z0qwgaKc+rBeruVMFgcN3rHRFyux3F0m+IlRKBLKXfYNHlAlRN0jvlWunI2kAdbLoduUv57Gc/2xGRsFqtGB8fxzX1bWUNUqmUlKqHapqtt5LNZpFIJHQpUCWET3RXuu222zo+Bpl4PB5crxWpoSFqIQ+FQmVrQplMBqlUqjMRSSMjQKmOPH7967Xtk5PA0BC40wmWycASiwGxGKChy2N6eho//elP4XA4tClL0CBkkUvGarV2LClg7969mJ+fr5vtJ8RWZqid3W6H3W5v2CK/cuUKAOiSDi+EfH5+Hm63W9dbYBmI0M9GF7plsbi4qMTdi4YcArH42onuX2Wdgl58cW373r0AY+DqKomq17XgiSeeALAa3KDnXR4JuYk5UMpyO1un0psWQg6sWuWNWuRTU1PweDy6FKgSyUtzc3PYunWrqd0qwOqFqVAotNU3tVkymQyCwSAmJyfhdrvXuVZEKOzWreva9UqHqY/x85+vbS/FmFsefFDZxv/mbzQfD9BaATmZkJCbmMHBQYyPj9cVcmE1yxbyRnt3zs7O4vLlyzhy5IguKcxerxfJZBLLy8uYnJys/wGD00rEULtcv34dnHNs27YN/f396+4C5+bm0N/f35laI6reqrh4ce2xWJtSd3h6+WUgn9dkGOoSGSK+Xy9IyE3OwYMHMTc3h8UNuorrbZG/8sor6OnpwVtVEQWdRO3LvfXWW3UZg0z0qIR47do1MMYwMTFRtcnF4uKi1KioDVEl3pUhsj4nJ1EsfecskykXe4mIRc4PfehDHQlw2AgScpNz2223we1243vf+15NUdVSyOtZ5IVCARcuXMDNN9+sRPV0mj179uDtb387fuM3fsP0/nFAH4t8fn4eo6OjcDgcypqD8NEXi0WEQiEMDg52ZjBqi1yNym3H1AvalbXKJWGEaBUBCbnJ6evrwyOPPIJoNIpnavQqTCaTcDgcsNnkBin19vYimUxuuOh27tw5ZDIZ7FcXO9KBd77znTh27JiuY5CFiI7opEW+uLiohK96vV7kcjklljwWi6FYLHYuIqmKRc6t1jKBZ+o7r9df12QYIqtZz0QgAQl5FzA5OYkDBw7g4sWLVUU1mUxqUhyqt7cX+Xy+rCCVmlwuh2effRajo6OmKRdrBkTDjE5Z5MlkEvF4vEzIgbULiVj47JiQb9u2bhOfmADs9rUN+/atPS6FncommUyCMQaXy6XJ/puBhLxL2LlzJxKJRFVfeSKR0GQRql4s+UsvvYRIJIJjx47pVqe5W+lkdqf4TY2UsiqFe0pUsxShiB0TcpdL8YELWKWhoPLXc43q0ggDyQhRUHR2dQkirO9ylYpvWpXYFEJezU8eiUTw4osv4sCBA2VVIQk5tFIPvlVE0pnIARAWuVrIO10MjVUsLrLKsFa1kDdRJbQZksmkbh2BKiEh7xI8Hg9GRkaqCrlWJTZrNWEuFAr43ve+B8YY7rvvPunHJVqrB98qZ8+exbZt2xTR8ng8cDgcSmlk0dqwk3dd6yzwDSxyaGSRJxIJw9SzJyHvInbu3Ilr166VtQITJTY7aZHPzs5iYWEBDz74YEebSGwmfD4fUqlUzfUJWUSjUQQCAexT+ZwZY/D7/UoFRl1qcVfe5b3jHeXP/f61Rs2RCKBBezyyyAlNOHz4MIrFIp5//nllm7DatKiVXKtwlrgV1zu2tpsR/mitmzELsa6MER8eHlYscl3anFUWgDtypPy5xQKuLheggVWuVRBBK5CQdxGjo6M4dOgQXnvtNeRL2Wxa1kp2OByw2+1lrhXOOa5evQq/32+YH3k3Iu50KmueyKZWZym/349YLIZ0Oq2PRf7wwyiKIlV/8RdANbeOekF0YUHq4YvFIlKplGF+4yTkXcYtt9yCbDar+MrFgphWJ5o6TX9mZgb/+I//iCtXrugeN97tCIu8E0LudDrXuRBEKOLMzAxyuVznLXK/H5bpaeAXvwA++9mqb7GohVzygqcwXoziWqEytl3Gjh074HK5cO7cOezduxevvfYanE6nZr5qn8+HSCSCq1ev4lvf+ha8Xi/uv/9+3HnnnZocj1ilt7cXdrtdM9dKNpvFL37xC8zNzcHv968LsROulunpaQDa9qityZYt5VZ3JeoM0AbKPTeDEboCqSEh7zKsVituvvlmTE9P48yZM7hy5QqOHTsGuzpZQiKDg4M4c+YMfvjDH2JwcBAf/ehHNe9XSqwuOFYrXiWLU6dO4aWXXgIA3HHHHeteF20DRcE2Qy5qq4X86lWpu9b6TrdZyLXShRw4cADpdBo/+MEPMDIyoql1PDAwgFwuh1gshoceeohEvINomRQkYsQB1MzKHR8fVyoAdqIOedOoI1tmZqTu2mgWOQl5F6Ku+X3PPfdoGt+rLpTUiVrUxBoej0ep9yGbBdXi4I4dO6q+56aSxWu1WuF0OjUZR1uohLwoOU0/FouBMaZrVyA1JORdiNVqxdGjR2Gz2TRfdBS31CTinaevrw/xeFx6pyDOORYWFnDgwAF87GMfqynSQuALhYLU40tD7VqZmQEkzlM0GkVfX59hSk+Qj7xLOXbsGO677z7pFQ8rGR8fx9GjR/G2t71N0+MQ6/F4PCgWi9ITU5LJJNLpNCYnJ8tquVciUvbvueceaceWit+PYk8PLKnUav/OcBiQVA9Gq7IXrdLW5YQx9kHG2BnGWJExdqT+J4hOwRjTXMSBVev//vvvN+ZiV5ejVV1yUWe7Xn1xxhg+97nP4V3vepfU40uDsfJKid///mozZgl0lZADOA3gPwP4pYSxEATRBFoJuShL20jDBCNU/tsIpvbvf/zjKB46BJTqqLdDVwk55/wc53xa1mAIgmgcLS1yEd5odlhFNyHL1avAL9uzO3O5HFKpVPcIeTMwxj7OGJtijE2J+g0EQbSOx+MBY0x6LHkoFEJ/fz+sVqvU/epCtbZwJ060tUsRKaRLElQN6jpRGWPPAhir8tJjnPMnGz0Q5/xxAI8DwJEjR+QusxPEJsRiscDn80kX8nA43LkmEVpTRcj5K6+gHYeQ0ZKBgAaEnHP+W50YCEEQzTMwMCC93kokEume1nxHj4JbLGDForKJT021JeRGSwYCKI6cIExNf3+/VCHP5/OIx+Md7fajKbt3gz35JPDYY8omNjcH5HIt71LL0tCt0m744cOMsVkAbwPwE8bY03KGRRBEIwwMDCCRSCDXhjCpESLVNUIOAO99L/CXf4liKe6dFYvA7GzLu4tGo7Db7YbKZm03auVHnPMJzrmTcz7KOX+PrIERBFGfykbI7SL201VCXqIsFLGNIloi9NBIoZfkWiEIEyNu72WFIG4aIW+j9orRYsgBEnKCMDVCUEQkRbsYcSFPGhItciP5xwEScoIwNbKTguLxOBwOBxwOh5T9GQp1WdsWLXLOuVIwy0iQkBOEiXE4HHA6ndKEPJFIGE6kpKESct6ikKfTaRQKBbLICYKQi8fjkWqRd62Qq1wrrQq5EZOBABJygjA9Xq9Xmo+8q4V8chK8FGnCFhaAbLbpXRh1DYGEnCBMzsDAAFZWVqQ0mIjH44bpDC8dhwO81DSacQ5cv970LoyYDASQkBOE6RkdHUU6nW7bvZLP55FOp7vXIkf7IYjizsdoc0RCThAmZ3R0FACwuLjY1n7EhcBoIiWTsrK2LVrkvb29HWna0gwk5ARhckZGRgAAN27caGs/oopi11Q+rMbExNrjubmmP27EZCCAhJwgTI/L5YLX68Xy8nJb+xHFt7qhoURN1E3CWxRyo/nHARJygugKhoaGlF6brRIKhcAY68r0fIU2hdyIyUAACTlBdAVDQ0NYXl5uOnKlUCjg6tWrSKfTCIfD8Pl8sFi6WBZUQl5s0kdeLBaRTCYN6VoxlseeIIiWGBoaQiaTaToz8yc/+QlOnjyJu+66q7s6A9WiDYs8mUyCc04WOUEQ2uD3+wGgKfdKsVjEuXPnAADBYFDp1dnVjI+Dl+44LEtLQCbT8EdFr04jxtmTkBNEFyAEuJm65HNzc0in0wCAQCCARCLR/Ra5zaYkBQEAZmYa/qgQcrLICYLQBBFJ0Uyq/tTUFGw2G2699VYEg0EAXR6xUoKp+5FeudLw5xKJBAAScoIgNMLhcMDlcjVskSeTSbzxxhu48847MVZqgQZ0eQx5CbZz59qTJrI7jexaocVOgugSmimeFYlEwDnH5ORkWaTLZrDIoRbyJizyeDwOu91uyFrtJOQE0SX4fL6GhVxYlx6PBx6PBz09PXA6nYa0NqWjFvLLlxv+WCKRgNvtNlSvTgEJOUF0CV6vF7MNdodX11Xx+Xz41Kc+Bc65IUVKOiohL1650rB/2cglfslHThBdgtfrRSqVQi6Xq/veyggMxlh3JwKpqXStNJhEZeTuSZvkmyOI7kek1jfiXonFYnC5XIar4tcRhodR7O0FAFhiMaDB2Hsj12onISeILqGZEMR4PG7IVPOOwFjTC56FQgHJZJIscoIgtEUIeSMhiEb293YCy65da08aEPJkMgnAmKGHAAk5QXQNzVjk0WjUkOVYO4ZayBuIXDFyVidAQk4QXYPdbkdvb29di7xYLBq2rnbHaDIpiIScIIiO0UhSUDweB+echLwEb8C1YuSsToCEnCC6ikaEXFjsJOSr8IsX675dxN0bdYGYhJwguohGhFy83tWdgOqxfTt4KfmJzc0B2eyGb49Go+jp6YHdbu/E6JqGhJwgugifz4d0Oo3sBsJEFjkApxPFLVsAAIzzuuVsjb6mQEJOEF1EI5Er4XBYqZa4mbHs2LH2pI6QR6NRw7pVABJygugqGhHylZUV+P3+zVFXZQPY9u1rTzYS8scfx8Ef/QgHX3kFuHFD83G1QltCzhj7X4yx84yx1xljP2KM9UsaF0EQLdBIUtDKygqGhoY6NSTjsm3b2uMNhJz/0z/hnqefxuG//3uggYVRPWjXIn8GwC2c80MALgD48/aHRBBEq9SzyLPZLCKRCAk5ANx009rjjYRc3aRZ3bzZQLQl5Jzz/8c5z5ee/hrARPtDIgiiVWw2G9xud00hFy3dRLPmTY1KyIu1hLxQAFtcXHteWiA1GjJ95B8F8NNaLzLGPs4Ym2KMTS0tLUk8LEEQajYKQVxeXgZAQg6gTMhrJgUFAmCFAgCgODgIGHSBuK6QM8aeZYydrvLv/ar3PAYgD+DbtfbDOX+cc36Ec35keHhYzugJgljHRkK+UirZOjg42MkhGRNVLLllbg7IZNa/xwRuFaCBDkGc89/a6HXG2EcAvBfAuzhvsEI7QRCa4fV6MVPDVbC8vAyfz2fYxJaO4nKBb9sGNjMDViyuVkHcv7/8PSohZxPG9Ry3G7VyDMCfAfhtznlSzpAIgmgHr9dbMylIhB4Sq7C9e9eeXLiw/g1qITeofxxo30f+JQAeAM8wxk4xxv63hDERBNEGtUIQOecUelhBM0JuatfKRnDOd8saCEEQclC3fFOvR2WzWWSz2c1dY6WSPXvWHleLETeJkFNmJ0F0GbViycVzI6ead5zda7Yor9JgoiyGvFt95ARBGA8h1JVCbvRSrLqg6hTEL11a9zK/dm3tCVnkBEF0CpEUVOkjF0Ju5Cp+HWfHjrVytrOz68vZzs+vPSaLnCCITuL1ehXhFpBrpQrqcrbFInD16tpr0Sgspc5A3OkEDBx7T0JOEF2Iz+erapG7XC6KIa+AqfzkZY2YVf5xvmULYOBqkSTkBNGFeDyeqj5yssbXY1H5ycsaMavcKmxysoMjah4ScoLoQnw+HzKZDDKqtHMS8hqoG0yoXSuqmlBsZKRz42kBEnKC6EKqhSCSkNdA3WBCbZGri/sZvD4UCTlBdCGVQs45JyGvhcoiL6qFvFQpEgBg8LIGJOQE0YWI7E2x4JlIJMA5JyGvBlnkBEEYkcqkIPE/xZBXYXx8NbwQgCUYBEqlfskiJwhCV6xWK/r6+hQBp6zODbBYwA8eXHt+6hQAgKstchJygiD0QN1gYr4UStff36/jiIyL5Y471p6cPAmgQsjJtUIQhB4IIS8UCjh+/Dj27NkDt9ut97CMyVveojzkv/716gOyyAmC0Bsh5EtLS0gkErj11lv1HpJxueuutcdPPglcvgwmfOUACTlBEPrg9XqRyWQUtwr1yt2A225D8R3vAACwfB74yldM0XRZQEJOEF2KCEF8sxRSRw2XN8by8MNrT774xbXHBq56KCAhJ4guZWBgAABw/vx5eL1eOBwOnUdkcNQ1V4pF5aGRmy4LSMgJoksZGxuD3W5HPp+nhsuNoBZyFSTkBEHohtVqVazwg+o4aaI66uJZakjICYLQk/e+973Yv38/Dh8+rPdQjE+tBU0ScoIg9GTfvn340Ic+BIuFTvWG+LM/W79NXYvFoNC3SxAEIfjrvwZ27izfdttt+oylCUjICYIgBIyt95WbIGyThJwgCEJNKWzTTJCQEwRBqHnssbXHX/2qfuNoApveAyAIgjAUhw8DJ04AwSBw7716j6YhSMgJgiAqUVVDNAPkWiEIgjA5JOQEQRAmh4ScIAjC5JCQEwRBmBwScoIgCJNDQk4QBGFySMgJgiBMDuOcd/6gjC0BmGnx434AyxKH023Q/NSG5mZjaH5qY5S5uYlzvq75qi5C3g6MsSnO+RG9x2FUaH5qQ3OzMTQ/tTH63JBrhSAIwuSQkBMEQZgcMwr543oPwODQ/NSG5mZjaH5qY+i5MZ2PnCAIgijHjBY5QRAEoYKEnCAIwuSYSsgZY8cYY9OMsUuMsc/oPZ5Owxj7Z8ZYgDF2WrVtkDH2DGPsYun/AdVrf16aq2nG2Hv0GXVnYIxNMsaeZ4ydY4ydYYz9SWk7zQ8AxpiLMfYKY+y10vz899J2mp8SjDErY+wkY+zfSs/NMzecc1P8A2AFcBnATgAOAK8BOKD3uDo8B/8JwO0ATqu2fR7AZ0qPPwPgf5YeHyjNkRPAjtLcWfX+GzScm3EAt5ceewBcKM0Bzc/q38sA9JUe2wG8DOCtND9lc/RJAN8B8G+l56aZGzNZ5EcBXOKcX+GcZwE8AeD9Oo+po3DOfwkgWLH5/QC+UXr8DQAPqbY/wTnPcM7fBHAJq3PYlXDOFzjnJ0qPYwDOAdgKmh8AAF8lXnpqL/3joPkBADDGJgA8COCfVJtNMzdmEvKtAK6rns+Wtm12RjnnC8CqmAEYKW3ftPPFGNsO4C1YtTppfkqUXAenAAQAPMM5p/lZ44sAPg2gqNpmmrkxk5CzKtsodrI2m3K+GGN9AH4A4BOc8+hGb62yravnh3Ne4JwfBjAB4Chj7JYN3r5p5ocx9l4AAc758UY/UmWbrnNjJiGfBTCpej4BYF6nsRiJRcbYOACU/g+Utm+6+WKM2bEq4t/mnP+wtJnmpwLOeRjAzwEcA80PANwN4LcZY1ex6rJ9J2Ps/8BEc2MmIX8VwB7G2A7GmAPA7wD4sc5jMgI/BvCR0uOPAHhStf13GGNOxtgOAHsAvKLD+DoCY4wB+CqAc5zzv1O9RPMDgDE2zBjrLz3uAfBbAM6D5gec8z/nnE9wzrdjVVd+xjn/PZhpbvReKW5yVfkBrEYjXAbwmN7j0eHv/y6ABQA5rFoFvw9gCMBzAC6W/h9Uvf+x0lxNA7hf7/FrPDf3YPX29nUAp0r/HqD5Uf7WQwBOlubnNIDPlbbT/JTP029iLWrFNHNDKfoEQRAmx0yuFYIgCKIKJOQEQRAmh4ScIAjC5JCQEwRBmBwScoIgCJNDQk4QBGFySMgJgiBMzv8HMVH/xLnJjX4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Series ID: 160, start_pos: 103, length: 188, info_gain: 0.07817874804764519, \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# for each extracted shapelet (in descending order of quality/information gain)\n",
    "for s in st.shapelets[0:5]:\n",
    "\n",
    "    # summary info about the shapelet\n",
    "    print(s)\n",
    "\n",
    "    # plot the series that the shapelet was extracted from\n",
    "    plt.plot(train_x.iloc[s.series_id, 0], \"gray\")\n",
    "\n",
    "    # overlay the shapelet onto the full series\n",
    "    plt.plot(\n",
    "        list(range(s.start_pos, (s.start_pos + s.length))),\n",
    "        train_x.iloc[s.series_id, 0][s.start_pos : s.start_pos + s.length],\n",
    "        \"r\",\n",
    "        linewidth=3.0,\n",
    "    )\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2020-12-19T14:34:04.936596Z",
     "iopub.status.busy": "2020-12-19T14:34:04.930211Z",
     "iopub.status.idle": "2020-12-19T14:34:05.005915Z",
     "shell.execute_reply": "2020-12-19T14:34:05.006458Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "#0: Series ID: 119, start_pos: 73, length: 167, info_gain: 0.3254739618843089, \n",
      "#1: Series ID: 12, start_pos: 342, length: 60, info_gain: 0.08997643577425246, \n",
      "#2: Series ID: 160, start_pos: 103, length: 188, info_gain: 0.07817874804764519, \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# for each extracted shapelet (in descending order of quality/information gain)\n",
    "for i in range(0, min(len(st.shapelets), 5)):\n",
    "    s = st.shapelets[i]\n",
    "    # summary info about the shapelet\n",
    "    print(\"#\" + str(i) + \": \" + str(s))\n",
    "\n",
    "    # overlay shapelets\n",
    "    plt.plot(\n",
    "        list(range(s.start_pos, (s.start_pos + s.length))),\n",
    "        train_x.iloc[s.series_id, 0][s.start_pos : s.start_pos + s.length],\n",
    "    )\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2020-12-19T14:34:05.012159Z",
     "iopub.status.busy": "2020-12-19T14:34:05.011589Z",
     "iopub.status.idle": "2020-12-19T14:35:17.234842Z",
     "shell.execute_reply": "2020-12-19T14:35:17.235370Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Results:\n",
      "Correct:\n",
      "\t137/242\n",
      "\t0.5661157024793388\n",
      "\n",
      "Timing:\n",
      "\tTo build:   72.31805896759033 secs\n",
      "\tTo predict: 14.819790124893188 secs\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "from sktime.datasets import load_osuleaf\n",
    "\n",
    "train_x, train_y = load_osuleaf(split=\"train\", return_X_y=True)\n",
    "test_x, test_y = load_osuleaf(split=\"test\", return_X_y=True)\n",
    "\n",
    "# example pipeline with 1 minute time limit\n",
    "pipeline = Pipeline(\n",
    "    [\n",
    "        (\n",
    "            \"st\",\n",
    "            ContractedShapeletTransform(\n",
    "                time_contract_in_mins=time_contract_in_mins,\n",
    "                num_candidates_to_sample_per_case=10,\n",
    "                verbose=False,\n",
    "            ),\n",
    "        ),\n",
    "        (\"rf\", RandomForestClassifier(n_estimators=100)),\n",
    "    ]\n",
    ")\n",
    "\n",
    "start = time.time()\n",
    "pipeline.fit(train_x, train_y)\n",
    "end_build = time.time()\n",
    "preds = pipeline.predict(test_x)\n",
    "end_test = time.time()\n",
    "\n",
    "print(\"Results:\")\n",
    "print(\"Correct:\")\n",
    "correct = sum(preds == test_y)\n",
    "print(\"\\t\" + str(correct) + \"/\" + str(len(test_y)))\n",
    "print(\"\\t\" + str(correct / len(test_y)))\n",
    "print(\"\\nTiming:\")\n",
    "print(\"\\tTo build:   \" + str(end_build - start) + \" secs\")\n",
    "print(\"\\tTo predict: \" + str(end_test - end_build) + \" secs\")"
   ]
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": null,
   "lastKernelId": null
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
